package com.tbit.uqbike.webmanager.dao.core.tag;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.tbit.config.datasource.DataSource;
import com.tbit.uqbike.enums.TagStatus;
import com.tbit.uqbike.object.pojo.tag.Tag;
import com.tbit.uqbike.webmanager.req.tag.QueryTagListReq;
import com.tbit.uqbike.webmanager.resp.tag.TagBaseInfo;
import com.tbit.uqbike.webmanager.resp.tag.TagResp;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

/**
 * Tag 数据访问层
 *
 * <p>
 * 1、步骤1 <br> todo
 * 2、步骤2 <br> todo
 * 3、步骤3 todo
 * </p>
 *
 * @author <a href="mailto:chen.chaoxiong@tbit.com.cn">ChenChaoXiong</a>
 * @since 2024/7/8
 */
@DS(DataSource.CORE)
public interface TagDao {
    int insert(Tag tag);

    Tag selectById(Long id);

    Tag selectByBrandIdAndName(Integer brandId,String name);

    int update(Tag tag);

    int updateStatus(Long id, Integer status,@Param("oldStatusList") List<Integer> oldStatusList);

    List<TagBaseInfo> selectList(Integer brandId, TagStatus status);

    List<TagResp> selectListPage(QueryTagListReq req);

    List<Long> selectEnableIds(@Param("ids") Set<Long> ids);

    List<Tag> selectByIds(@Param("ids") Set<Long> ids);
}
